// 处理业务逻辑
// 导入数据模型
const taskModel = require('../models/taskModel')
class Task {
    // 测试方法
    async test(req, res) {
        res.send({
            code: 200,
            msg: '访问测试task业务'
        })
    }
    // 添加任务方法
    async add(req, res) {
        // 接收前端提交的参数
        let task_title = req.query.task_title;
        let task_create_time = req.query.task_create_time;
        // 调用任务数据模型的方法
        await taskModel.add(task_title, task_create_time)
            .then(
                content => {
                    // 把数据库操作成功结果响应给前端
                    res.send(content);
                }
            )
            .catch(
                err => {
                    // 把数据库操作失败结果响应给前端
                    res.send(err);
                }
            )
    }
    // 查询所有任务
    async list_all(req, res) {
        await taskModel.list_all()
            .then(
                content => {
                    // 把数据库操作成功结果响应给前端
                    res.send(content);
                }
            )
            .catch(
                err => {
                    // 把数据库操作失败结果响应给前端
                    res.send(err);
                }
            )
    }
    // 查询任务详情
    async detail(req, res) {
        let id = req.query.id;
        await taskModel.detail(id)
            .then(
                content => {
                    // 把数据库操作成功结果响应给前端
                    res.send(content);
                }
            )
            .catch(
                err => {
                    // 把数据库操作失败结果响应给前端
                    res.send(err);
                }
            )
    }
    // 获取分页数据
    async list_items(req, res) {
        let page = req.query.page;
        let pageSize = req.query.pageSize;
        await taskModel.list_items(page, pageSize)
            .then(
                content => {
                    // 把数据库操作成功结果响应给前端
                    res.send(content);
                }
            )
            .catch(
                err => {
                    // 把数据库操作失败结果响应给前端
                    res.send(err);
                }
            )
    }
    // 模糊查询（搜索功能）
    async search(req, res) {
        let keyword = req.query.keyword;
        await taskModel.search(keyword)
            .then(
                content => {
                    // 把数据库操作成功结果响应给前端
                    res.send(content);
                }
            )
            .catch(
                err => {
                    // 把数据库操作失败结果响应给前端
                    res.send(err);
                }
            )
    }

    // 修改任务标题
    async modify(req, res) {
        let task_title = req.query.task_title;
        let id = req.query.id;
        await taskModel.modify(task_title, id)
            .then(
                content => {
                    // 把数据库操作成功结果响应给前端
                    res.send(content);
                }
            )
            .catch(
                err => {
                    // 把数据库操作失败结果响应给前端
                    res.send(err);
                }
            )
    }

     // 删除任务
     async remove(req, res) {
        let id = req.query.id;
        await taskModel.remove(id)
            .then(
                content => {
                    // 把数据库操作成功结果响应给前端
                    res.send(content);
                }
            )
            .catch(
                err => {
                    // 把数据库操作失败结果响应给前端
                    res.send(err);
                }
            )
    }
}
// 暴露当前Task类
module.exports = new Task();